package com.codenum.codegenerator;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;

/**
* the Zorbrxff type
*/
@SuppressWarnings("ALL")
public class Zorbrxff {


        private static volatile Zorbrxff instance;

        /**
        * 方法MethodMap
        */
        private Map<String, Method> methodMap = new HashMap<>(32);

        private Map<String, Object> saleTypeMap = new HashMap<>(64);

        public static Zorbrxff getInstance() {
            if (instance == null) {
                synchronized (Zorbrxff.class) {
                    if (instance == null) {
                        instance = new Zorbrxff();
                    }
                }
            }
            return instance;
        }


        private Zorbrxff() {

        }



    public  Boolean judgeMhopeezjhj(String saleType){
        String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();
        return judgeAttributeValue(saleType, methodName);
    }
    public  Boolean judgeFuykxkqfdd(String saleType){
        String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();
        return judgeAttributeValue(saleType, methodName);
    }
    public  Boolean judgeZlqqcrkaql(String saleType){
        String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();
        return judgeAttributeValue(saleType, methodName);
    }
    public  Boolean judgeFuvlpxyqlr(String saleType){
        String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();
        return judgeAttributeValue(saleType, methodName);
    }
    public  Boolean judgeWupfeaolql(String saleType){
        String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();
        return judgeAttributeValue(saleType, methodName);
    }
    public  Boolean judgeNckvjpqdom(String saleType){
        String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();
        return judgeAttributeValue(saleType, methodName);
    }
    public  Boolean judgeBbsdvtunfh(String saleType){
        String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();
        return judgeAttributeValue(saleType, methodName);
    }
    public  Boolean judgeCnyexmsqmi(String saleType){
        String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();
        return judgeAttributeValue(saleType, methodName);
    }
    public  Boolean judgeJsxyczgjhe(String saleType){
        String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();
        return judgeAttributeValue(saleType, methodName);
    }
    public  Boolean judgeJkfckjingh(String saleType){
        String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();
        return judgeAttributeValue(saleType, methodName);
    }
    public  Boolean judgePklqophycl(String saleType){
        String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();
        return judgeAttributeValue(saleType, methodName);
    }
    public  Boolean judgeUogiptdwgi(String saleType){
        String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();
        return judgeAttributeValue(saleType, methodName);
    }
    public  Boolean judgeLpvzmmrfdi(String saleType){
        String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();
        return judgeAttributeValue(saleType, methodName);
    }

    private String  mhopeezjhj;
    private String  fuykxkqfdd;
    private String  zlqqcrkaql;
    private String  fuvlpxyqlr;
    private String  wupfeaolql;
    private String  nckvjpqdom;
    private String  bbsdvtunfh;
    private String  cnyexmsqmi;
    private String  jsxyczgjhe;
    private String  jkfckjingh;
    private String  pklqophycl;
    private String  uogiptdwgi;
    private String  lpvzmmrfdi;


    public void setMhopeezjhj(String mhopeezjhj){
    this.mhopeezjhj = mhopeezjhj;
    }

    public String getMhopeezjhj(){
    return this.mhopeezjhj;
    }
    public void setFuykxkqfdd(String fuykxkqfdd){
    this.fuykxkqfdd = fuykxkqfdd;
    }

    public String getFuykxkqfdd(){
    return this.fuykxkqfdd;
    }
    public void setZlqqcrkaql(String zlqqcrkaql){
    this.zlqqcrkaql = zlqqcrkaql;
    }

    public String getZlqqcrkaql(){
    return this.zlqqcrkaql;
    }
    public void setFuvlpxyqlr(String fuvlpxyqlr){
    this.fuvlpxyqlr = fuvlpxyqlr;
    }

    public String getFuvlpxyqlr(){
    return this.fuvlpxyqlr;
    }
    public void setWupfeaolql(String wupfeaolql){
    this.wupfeaolql = wupfeaolql;
    }

    public String getWupfeaolql(){
    return this.wupfeaolql;
    }
    public void setNckvjpqdom(String nckvjpqdom){
    this.nckvjpqdom = nckvjpqdom;
    }

    public String getNckvjpqdom(){
    return this.nckvjpqdom;
    }
    public void setBbsdvtunfh(String bbsdvtunfh){
    this.bbsdvtunfh = bbsdvtunfh;
    }

    public String getBbsdvtunfh(){
    return this.bbsdvtunfh;
    }
    public void setCnyexmsqmi(String cnyexmsqmi){
    this.cnyexmsqmi = cnyexmsqmi;
    }

    public String getCnyexmsqmi(){
    return this.cnyexmsqmi;
    }
    public void setJsxyczgjhe(String jsxyczgjhe){
    this.jsxyczgjhe = jsxyczgjhe;
    }

    public String getJsxyczgjhe(){
    return this.jsxyczgjhe;
    }
    public void setJkfckjingh(String jkfckjingh){
    this.jkfckjingh = jkfckjingh;
    }

    public String getJkfckjingh(){
    return this.jkfckjingh;
    }
    public void setPklqophycl(String pklqophycl){
    this.pklqophycl = pklqophycl;
    }

    public String getPklqophycl(){
    return this.pklqophycl;
    }
    public void setUogiptdwgi(String uogiptdwgi){
    this.uogiptdwgi = uogiptdwgi;
    }

    public String getUogiptdwgi(){
    return this.uogiptdwgi;
    }
    public void setLpvzmmrfdi(String lpvzmmrfdi){
    this.lpvzmmrfdi = lpvzmmrfdi;
    }

    public String getLpvzmmrfdi(){
    return this.lpvzmmrfdi;
    }

    void setMethodMap(Map<String, Method> methodMap) {
        this.methodMap = methodMap;
    }

   void setSaleTypeMap(Map<String, Object> saleTypeMap) {
        this.saleTypeMap = saleTypeMap;
    }

    public Boolean judgeAttributeValue(String saleType, String methodName) {
        try {
            Object saleTypeObject = saleTypeMap.get(saleType);
            String targetMethod = methodName.replace("judge", "get");
            String attr = methodName.replace("judge", "");
            Method method = methodMap.get(targetMethod);
            Object invoke = method.invoke(saleTypeObject);
            return Objects.isNull(invoke) ? Boolean.FALSE : Objects.equals(invoke.toString().toLowerCase(), attr.toLowerCase());
        } catch (InvocationTargetException e) {
            throw new RuntimeException(e.getMessage());
        } catch (IllegalAccessException e) {
            throw new RuntimeException(e.getMessage());
        }
    }

}